<?php
Yii::import('application.models.Grupo');
/**
 * This is the model class for table "{{categoria}}".
 *
 * The followings are the available columns in table '{{categoria}}':
 * @property integer $categoria_id
 * @property string $categoria_descripcion
 * @property string $categoria_observacion
 * @property integer $categoria_grupo
 * @property string $categoria_aplica_a
 * @property string $categoria_acceso_instalaciones
 * @property string $categoria_cupo_general
 * @property string $categoria_acceso_tribunas
 *
 * The followings are the available model relations:
 * @property Grupo $categoriaGrupo
 * @property Color[] $colors
 * @property Transporte[] $transportes
 * @property Zona[] $zonas
 */
class Categoria extends CActiveRecord
{
	/**
	 * Returns the static model of the specified AR class.
	 * @return Categoria the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
	
	public function get_grupos()
	{
		$loc_listadoGrupos = Grupo::model()->findAll(array('order'=>'grupo_descripcion'));
		return CHtml::listData($loc_listadoGrupos, 'grupo_id', 'grupo_descripcion');
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return '{{categoria}}';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('categoria_descripcion,categoria_grupo,categoria_descripcion,categoria_cupo_general,categoria_aplica_a, categoria_acceso_instalaciones, categoria_acceso_tribunas', 'required'),
			array('categoria_grupo','numerical', 'integerOnly'=>true),
			array('categoria_descripcion', 'length', 'max'=>50),
			array('categoria_observacion', 'length', 'max'=>200),
			array('categoria_aplica_a, categoria_acceso_instalaciones, categoria_acceso_tribunas', 'length', 'max'=>500),
			array('categoria_cupo_general', 'length', 'max'=>10),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('categoria_id, categoria_descripcion, categoria_observacion, categoria_grupo, categoria_aplica_a, categoria_acceso_instalaciones, categoria_cupo_general, categoria_acceso_tribunas', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'categoriaGrupo' => array(self::BELONGS_TO, 'Grupo', 'categoria_grupo'),
			'colors' => array(self::HAS_MANY, 'Color', 'color_categoria'),
			'transportes' => array(self::HAS_MANY, 'Transporte', 'transporte_categoria'),
			'zonas' => array(self::HAS_MANY, 'Zona', 'zona_categoria'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'categoria_id' => 'Categoria',
			'categoria_descripcion' => 'Descripción :',
			'categoria_observacion' => 'Observación :',
			'categoria_grupo' => 'Grupo :',
			'categoria_aplica_a' => 'Aplica A :',
			'categoria_acceso_instalaciones' => 'Acceso Instalaciones :',
			'categoria_cupo_general' => 'Cupo # :',
			'categoria_acceso_tribunas' => 'Acceso Tribunas :',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('categoria_id',$this->categoria_id);
		$criteria->compare('categoria_descripcion',$this->categoria_descripcion,true);
		$criteria->compare('categoria_observacion',$this->categoria_observacion,true);
		$criteria->compare('categoria_grupo',$this->categoria_grupo);
		$criteria->compare('categoria_aplica_a',$this->categoria_aplica_a,true);
		$criteria->compare('categoria_acceso_instalaciones',$this->categoria_acceso_instalaciones,true);
		$criteria->compare('categoria_cupo_general',$this->categoria_cupo_general,true);
		$criteria->compare('categoria_acceso_tribunas',$this->categoria_acceso_tribunas,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}